home *** CD-ROM | disk | FTP | other *** search
/ Monster Media 1996 #15 / Monster Media Number 15 (Monster Media)(July 1996).ISO / tbbs / prgsourc.zip / EVENTS.ZIP / EVENTM1.PRG < prev    next >
Text File  |  1996-04-24  |  44KB  |  1,075 lines

  1. *******************************************************************
  2. *                             FILES
  3. * Homepath()\DAY\XXXXXX.DAY  = Two weeks of daily events
  4. * Homepath()\DAY\XXXDAY.WK   = Weekly events by day of week
  5. *     Homepath()\DAY\XX.MON  = Monthly events by day of month
  6. * Homepath()\DAY\XXXXXX.DM   = Monthly events by X day of X day-of-week
  7. *                XXXXXX.RVW  = Past week's reviews, inc. events, names, review
  8. * Homepath()\ARC\XXXXXX.ZIP  = Archived RVW files, minus names
  9. * Homepath()\POST\XXXXXX.PST = ANSI Posters
  10. * Homepath()\LST\XXXXXX.LST  = Shedules
  11. *                   USER.USR = Config & Auth file, all users
  12. *******************************************************************                       
  13. *                         VARIABLES
  14. *    a = add[] counter
  15. *    c = column
  16. *    i = temporary
  17. *    j = temporary
  18. *    k = key input        
  19. *    m = menu[] counter
  20. *    p = page of tBoard
  21. *    r = row
  22. *    s = srch[] counter
  23. *    u = setup[] counter             
  24. *    v = view[] counter
  25. *    x = local counter
  26. *    y = local counter
  27. *    z = file process return
  28. *    buf = max buffer size
  29. *   line = line read from file
  30. *    sub = .SUB file
  31. *    day = .DAY file
  32. *   ustr = User String, subject configuration
  33. *   sstr = Subject String, subject configuration
  34. *******************************************************************
  35. *                        DBF FIELDS
  36. * sth,eth = start/end time(hour)    ca,cu,cc = cost: adult,under 12, child
  37. * stm,etm = start/end minute         sap,eap = start/end a.m./p.m.
  38. * loc,cty,stat,phn = location, city, state, phone number
  39. * ev,dsc1,dsc2 = event name and two description line
  40. *******************************************************************
  41. *                        PROCEDURES
  42. *   BoxW: White box with optional shadow, <ANY KEY>
  43. *   clrB: Clears pBoxes to blue
  44. *   pBox: Pick boxes (pull-down menus)
  45. * Screen: Pull-down menus
  46. *******************************************************************
  47.  
  48. SET FORMAT TO fscr NOCLEAR
  49. SET INTENSITY OFF
  50. SET ESCAPE OFF
  51.  
  52. ok = .T.                                         &&  Initialize Variables
  53.  
  54. STORE " " TO k,line
  55. STORE 0 TO s,a,v,u,m
  56.  
  57. buf = fMaxLen()                                  && Allocate file buffers
  58. IF buf > 4096
  59.    buf = 2048
  60. ELSE
  61.    IF buf > 2048
  62.       buf = 1024
  63.    ELSE 
  64.       buf = 256
  65.    ENDIF
  66. ENDIF
  67.  
  68. FOPEN usr USER.USR 10 buf
  69. FLFIND usr z UName() 0
  70. IF z < 1
  71.    FCLOSE usr
  72.    ustr = Replicate("X",130)
  73.    dstr = "TWM"
  74.    line = ustr + dstr + Chr(13) + Chr(10)
  75.    FOPEN usr USER.USR 11 buf
  76.    FLWRITE usr z line
  77.    FCLOSE usr
  78. ELSE
  79.    FLREAD usr z line
  80.    FCLOSE usr
  81.    line = CRTrim(line)
  82.    ustr = SubStr(line,31,130)
  83.    dstr = SubStr(line,131,3)
  84. ENDIF   
  85. sstr = ustr
  86. tstr = dstr
  87.  
  88. *****************************************************************
  89.  
  90. DECLARE menu[6]                                  && Bar Menu (m)
  91. menu[1] = " View "
  92. menu[2] = " Find "
  93. menu[3] = " Add/Cancel "
  94. menu[4] = " Setup "
  95. menu[5] = " Help "
  96. menu[6] = " Quit "
  97.  
  98. DECLARE view[3]                                  && View menu (v)
  99. view[1] = " Events    "
  100. view[2] = " Slideshow "
  101. view[3] = " Reviews   "
  102.  
  103. DECLARE srch[5]                                  && Search menu (s)
  104. srch[1] = " Poster   "
  105. srch[2] = " Event    "
  106. srch[3] = " Schedule "
  107. srch[4] = " Review   " 
  108. srch[5] = " Archive  "
  109.  
  110. DECLARE add[4]                                   && Add menu (a)
  111. add[1] = " Add Event ...    "
  112. add[2] = " Cancel Event ... "
  113. add[3] = " Upload Schedule  "
  114. add[4] = " Upload Poster    "
  115.  
  116. DECLARE setup[6]                                 && Setup menu (u)
  117. setup[1] = " Subjects ...     "
  118. setup[2] = " Locations ...    "
  119. setup[3] = " Today & Tomorrow "
  120. setup[4] = " This Week        "
  121. setup[5] = " This Month       "
  122. setup[6] = " Select Date ...  "
  123.  
  124. *****************************************************************
  125.  
  126. DO Screen
  127.  
  128. m = 4
  129. y = 46
  130. u = 1
  131. DO pBox WITH m
  132. DO Msg WITH 41
  133.  
  134. DO WHILE .T.
  135.  
  136.    SET COLOR TO B/B
  137.    @ 22,0 GET k
  138.    
  139.    DO WHILE .T. 
  140.       READ
  141.       DO CASE
  142.          CASE LastKey() = 19                         && <Lt Arrow>
  143.               v = 1
  144.               s = 1
  145.               a = 1
  146.               u = 1
  147.               SET COLOR TO N/W
  148.               @ 0,y SAY menu[m]
  149.               DO clrB WITH m
  150.               IF m = 1
  151.                  m = 6
  152.               ELSE
  153.                  m = m - 1
  154.               ENDIF
  155.               DO CASE
  156.                  CASE m = 1
  157.                       y = 4
  158.                  CASE m = 2
  159.                       y = 17
  160.                  CASE m = 3
  161.                       y = 29
  162.                  CASE m = 4
  163.                       y = 46
  164.                  CASE m = 5
  165.                       y = 59
  166.                  CASE m = 6                      && Quit
  167.                       y = 71
  168.               ENDCASE
  169.               IF m < 5
  170.                  DO pBox WITH m
  171.               ENDIF
  172.               DO Msg WITH (m*10)+1
  173.               SET COLOR TO W/N
  174.               @ 0,y SAY menu[m]
  175.               
  176.          CASE LastKey() = 4                        && <Rt Arrow>
  177.               v = 1
  178.               s = 1
  179.               a = 1
  180.               u = 1
  181.               SET COLOR TO N/W
  182.               @ 0,y SAY menu[m]
  183.               DO clrB WITH m
  184.               IF m = 6 
  185.                  m = 1
  186.               ELSE
  187.                  m = m + 1
  188.               ENDIF
  189.               DO CASE
  190.                  CASE m = 1
  191.                       y = 4
  192.                  CASE m = 2
  193.                       y = 17
  194.                  CASE m = 3
  195.                       y = 29
  196.                  CASE m = 4
  197.                       y = 46
  198.                  CASE m = 5
  199.                       y = 59
  200.                  CASE m = 6                      && Quit
  201.                       y = 71
  202.               ENDCASE
  203.               IF m < 5
  204.                  DO pBox WITH m
  205.               ENDIF
  206.               DO Msg WITH (m*10)+1
  207.               SET COLOR TO W/N
  208.               @ 0,y SAY menu[m]
  209.               
  210.          CASE LastKey() = 5                        && <Up Arrow>
  211.               SET COLOR TO N/W
  212.               DO CASE
  213.                  CASE m = 1                        && View
  214.                       @ v+1,4 SAY view[v]
  215.                       IF v = 1 
  216.                          v = 3
  217.                       ELSE
  218.                          v = v - 1
  219.                       ENDIF
  220.                       DO Msg WITH 10+v
  221.                       SET COLOR TO W+/N
  222.                       @ v+1,4 SAY view[v]
  223.                  
  224.                  CASE m = 2                        && Search
  225.                       @ s+1,16 SAY srch[s]
  226.                       IF s = 1 
  227.                          s = 5
  228.                       ELSE
  229.                          s = s - 1
  230.                       ENDIF
  231.                       DO Msg WITH 20+s
  232.                       SET COLOR TO W+/N
  233.                       @ s+1,16 SAY srch[s]
  234.               
  235.                  CASE m = 3                        && Add/Cancel
  236.                       @ a+1,24 SAY add[a]
  237.                       IF a = 1 
  238.                          a = 4
  239.                       ELSE
  240.                          a = a - 1
  241.                       ENDIF
  242.                       DO Msg WITH 30+a
  243.                       SET COLOR TO W+/N
  244.                       @ a+1,24 SAY add[a]
  245.               
  246.                  CASE m = 4                        && Setup
  247.                       @ u+1,35 SAY setup[u]
  248.                       IF u = 1 
  249.                          u = 6
  250.                       ELSE
  251.                          u = u - 1
  252.                       ENDIF
  253.                       DO Msg WITH 40+u
  254.                       SET COLOR TO W+/N
  255.                       @ u+1,35 SAY setup[u]
  256.            
  257.               ENDCASE
  258.  
  259.          CASE LastKey() = 24                       && <Dn Arrow>
  260.               SET COLOR TO N/W
  261.               DO CASE
  262.                  CASE m = 1                        && View
  263.                       @ v+1,4 SAY view[v]
  264.                       IF v = 3 
  265.                          v = 1
  266.                       ELSE
  267.                          v = v + 1
  268.                       ENDIF
  269.                       DO Msg WITH 10+v
  270.                       SET COLOR TO W+/N
  271.                       @ v+1,4 SAY view[v]
  272.                       
  273.                  CASE m = 2                        && Find
  274.                       @ s+1,16 SAY srch[s]
  275.                       IF s = 5 
  276.                          s = 1
  277.                       ELSE
  278.                          s = s + 1
  279.                       ENDIF
  280.                       DO Msg WITH 20+s
  281.                       SET COLOR TO W+/N
  282.                       @ s+1,16 SAY srch[s]
  283.                    
  284.                  CASE m = 3                        && Add/Cancel
  285.                       @ a+1,24 SAY add[a]
  286.                       IF a = 4 
  287.                          a = 1
  288.                       ELSE
  289.                          a = a + 1
  290.                       ENDIF
  291.                       DO Msg WITH 30+a
  292.                       SET COLOR TO W+/N
  293.                       @ a+1,24 SAY add[a]
  294.                    
  295.                  CASE m = 4                        && Setup
  296.                       @ u+1,35 SAY setup[u]
  297.                       IF u = 6 
  298.                          u = 1
  299.                       ELSE
  300.                          u = u + 1
  301.                       ENDIF
  302.                       DO Msg WITH 40+u
  303.                       SET COLOR TO W+/N
  304.                       @ u+1,35 SAY setup[u]
  305.               ENDCASE
  306.  
  307.          CASE LastKey() = 13                        && <Enter>
  308.               DO CASE
  309.                  CASE m = 1                          && View
  310.                       DO CASE
  311.                          CASE v = 1                    && Events
  312.                               SET COLOR TO B/B
  313.                               @ 1,3 CLEAR TO 6,16
  314.                               DO CASE
  315.                                  CASE "M" $ tstr 
  316.                                       n = 30
  317.                                  CASE "W" $ tstr 
  318.                                       n = 7
  319.                                  OTHERWISE
  320.                                       n = 2
  321.                               ENDCASE
  322.                               DO BoxW WITH 2,4,18,55,"s"
  323.                               @ 5,6 SAY "When:" 
  324.                               @ 7,6 SAY "What:"
  325.                               @ 12,6 SAY "Where:"
  326.                               @ 14,6 SAY "Adults:"            
  327.                               @ 15,6 SAY "Und. 12:                 Children:"       
  328.                               @ 17,6 SAY "Contact:"
  329.                               SET COLOR TO GR+/B
  330.                               @ 3,5 SAY " EVENTS FOR DAY:                                  "
  331.                               nx = 1              && day (nx = 1 = today)
  332.                               bx = 1              && byte count
  333.                               xx = 1              && exit code for Popup (0 = bof,1 = ok, 2 = not in str, 3 = eof)
  334.                               DO Popup WITH nx,bx,xx
  335.                               k = " "
  336.                               DO WHILE .T.
  337.                                  READ
  338.                                  DO CASE
  339.                                     
  340.                                     CASE LastKey() = 5           && Up
  341.                                          DO WHILE .T.
  342.                                             DO CASE
  343.                                                CASE bx <= 289 .AND. nx = 1
  344.                                                     EXIT
  345.                                                CASE bx <= 289
  346.                                                     nx = nx - 1
  347.                                                     DO Popup WITH nx,0,xx
  348.                                                     DO CASE
  349.                                                        CASE xx = 0 
  350.                                                             LOOP
  351.                                                        CASE xx = 2
  352.                                                             bx = bx - 596
  353.                                                        OTHERWISE
  354.                                                             EXIT
  355.                                                     ENDCASE
  356.                                                OTHERWISE
  357.                                                     bx = bx - 288
  358.                                                     DO Popup WITH nx,bx,xx
  359.                                                     DO CASE
  360.                                                        CASE xx = 0 
  361.                                                             LOOP
  362.                                                        CASE xx = 2
  363.                                                             bx = bx - 596
  364.                                                        OTHERWISE
  365.                                                             EXIT
  366.                                                     ENDCASE
  367.                                             ENDCASE
  368.                                          ENDDO
  369.                                     
  370.                                     CASE LastKey() = 24          && Down
  371.                                          DO WHILE .T.
  372.                                             DO CASE
  373.                                                CASE xx = 3 .AND. nx = n
  374.                                                     EXIT
  375.                                                CASE xx = 3  && (0 = bof,1 = ok, 2 = not in str, 3 = eof)
  376.                                                     nx = nx + 1
  377.                                                     DO Popup WITH nx,1,xx
  378.                                                     DO CASE
  379.                                                        CASE xx = 3 
  380.                                                             LOOP
  381.                                                        CASE xx = 2
  382.                                                             bx = bx + 288
  383.                                                        OTHERWISE
  384.                                                             EXIT
  385.                                                     ENDCASE
  386.                                                OTHERWISE
  387.                                                     bx = bx - 288
  388.                                                     DO Popup WITH nx,bx,xx
  389.                                                     DO CASE
  390.                                                        CASE xx = 0 
  391.                                                             LOOP
  392.                                                        CASE xx = 2
  393.                                                             bx = bx - 596
  394.                                                        OTHERWISE
  395.                                                             EXIT
  396.                                                     ENDCASE
  397.                                             ENDCASE
  398.                                          ENDDO
  399.                                     
  400.                                     CASE LastKey() = 27          && Esc
  401.                                          EXIT
  402.                                  ENDCASE
  403.                               ENDDO
  404.                               DO pBox WITH 1
  405.                            
  406.                          CASE v = 2                     && Slideshow
  407.                               SET COLOR TO W/N
  408.                               @ 3,4 SAY " Slideshow "
  409.                               
  410.                               DO pBox WITH 1
  411.                               SET COLOR TO W+/N
  412.                               @ 3,4 SAY " Slideshow "
  413.                            
  414.                          CASE v = 3                    && Reviews
  415.                               SET COLOR TO W/N
  416.                               @ 4,4 SAY " Reviews   "
  417.                               
  418.                               DO pBox WITH 1
  419.                               SET COLOR TO W+/N
  420.                               @ 4,4 SAY " Reviews   "
  421.                       
  422.                       ENDCASE
  423.                  
  424.                  CASE m = 2                      && Search 
  425.                       DO CASE 
  426.                          SET COLOR TO W+/B
  427.                          CASE s = 1              && " Poster   "
  428.                               
  429.                          CASE s = 2              && " Event    "
  430.                               
  431.                          CASE s = 3              && " Schedule "
  432.                               
  433.                          CASE s = 4              && " Review   "
  434.                               
  435.                          CASE s = 5              && " Archive  " 
  436.                               
  437.                       ENDCASE   
  438.    
  439.                  CASE m = 3
  440.                       DO CASE 
  441.                          CASE a = 1                              && " Add Event ...    "
  442.                               DO ClrB WITH 3
  443.                               DO BoxW WITH 8,30,14,50,"s"
  444.                               SET COLOR TO GR+/B
  445.                               @ 9,31 SAY "     Add Event     "
  446.                               SET COLOR TO N/W
  447.                               @ 11,32 SAY "( ) Weekly Event"
  448.                               @ 12,32 SAY "( ) Monthly Event"
  449.                               @ 13,32 SAY "( ) Special Event"
  450.                               DO Msg WITH 2
  451.                               ae = 3
  452.                               DO Ckae WITH ae
  453.                               k = " "
  454.                               r = 13
  455.                               DO WHILE .T.
  456.                                  READ
  457.                                  DO CASE
  458.                                     CASE LastKey() = 13
  459.                                          EXIT
  460.                                     CASE LastKey() = 5         && Up Arrow
  461.                                          IF r = 11
  462.                                             r = 13
  463.                                          ELSE
  464.                                             r = r - 1
  465.                                          ENDIF
  466.                                          ae = r - 10
  467.                                          DO Ckae WITH ae
  468.                                          
  469.                                     CASE LastKey() = 24        && Dn Arrow
  470.                                          IF r = 13
  471.                                             r = 11
  472.                                          ELSE
  473.                                             r = r + 1
  474.                                          ENDIF
  475.                                          ae = r - 10
  476.                                          DO Ckae WITH ae
  477.                                  
  478.                                  ENDCASE
  479.                               ENDDO
  480.                               SET COLOR TO B/B
  481.                               @ 8,30 CLEAR TO 15,51
  482.                               SET COLOR TO W+/B              && Remove
  483.                               DO CASE
  484.                                  CASE ae = 1
  485.                                       USE week
  486.                                       DO NewDbf
  487.                                       SET COLOR TO GR+/B
  488.                                       @ 4,11 SAY "                       Weekly Event                        "
  489.                                       SET COLOR TO N/W
  490.                                       @ 8,12  SAY "Day of week Event happens:"
  491.                                       SET FORMAT TO fweek NOCLEAR
  492.                                  CASE ae = 2
  493.                                       USE month
  494.                                       DO NewDbf
  495.                                       SET COLOR TO GR+/B
  496.                                       @ 4,11 SAY "                      Monthly Event                        "
  497.                                       SET COLOR TO N/W
  498.                                       @ 8,12  SAY "Day of week:        No. of [week or day] in month:"
  499.                                       SET FORMAT TO fmon NOCLEAR
  500.                                  CASE ae = 3
  501.                                       USE newev
  502.                                       DO NewDbf
  503.                                       SET COLOR TO GR+/B
  504.                                       @ 4,11 SAY "                      Special Event                        "
  505.                                       SET COLOR TO N/W
  506.                                       @ 8,12  SAY "Start Date:             End Date:          "
  507.                                       SET FORMAT TO fadd NOCLEAR
  508.                               ENDCASE
  509.  
  510.                               DO WHILE .T.
  511.                                  READ
  512.                                  DO CASE
  513.                                     CASE LastKey() = 23                && Ctrl-End
  514.                                          ok = .T.
  515.                                          EXIT
  516.                                     CASE LastKey() = 27                && Esc
  517.                                          ok = .F.
  518.                                          EXIT
  519.                                     CASE LastKey() = 63                && ? Help
  520.                                          LOOP
  521.                                  ENDCASE
  522.                               ENDDO
  523.                               SET FORMAT TO fscr NOCLEAR
  524.                               SET COLOR TO B/B
  525.                               @ 3,10 CLEAR TO 20,71,"s"
  526.                               IF ok
  527.                                  p = 0
  528.                                  DO BoxW WITH 3,7,19,69,"s"
  529.                                  SET COLOR TO GR+/B
  530.                                  @ 4,8 SAY  "      TOPIC BOARD                                 Page       "
  531.                                  x = 6 
  532.                                  SET COLOR TO N/W
  533.                                  DO Msg WITH 3
  534.                                  DO WHILE x <= 18
  535.                                     @ x,9 SAY  "[ ]                           [ ]"
  536.                                     x = x + 1
  537.                                  ENDDO
  538.                                  sstr = Replicate(Chr(32),130)
  539.                                  DECLARE Sarray[26]
  540.                                  DO tBoard WITH p,sstr
  541.                                  SET COLOR TO W+/B
  542.                                  @ 6,9 SAY "[" + SubStr(sstr,(p*26 + 1),1) + "] " + Sarray[1]
  543.                                  SET COLOR TO W+/W
  544.                                  r = 6
  545.                                  c = 10
  546.                                  ss = 0
  547.                                  x = 1
  548.                                  sa = 1
  549.                                  DO WHILE .T.
  550.                                     READ
  551.                                     SET COLOR TO N/W
  552.                                     DO CASE
  553.                                        CASE LastKey() = 5       && Up
  554.                                             DO CASE
  555.                                                CASE r > 6 
  556.                                                     @ r,c-1 SAY "[" + SubStr(sstr,x,1) + "] " + Sarray[sa]
  557.                                                     r = r - 1
  558.                                                     sa = sa - 1
  559.                                                CASE r = 6 .AND. c = 10 .AND. p = 0
  560.                                                     LOOP
  561.                                                CASE r = 6 .AND. c = 10 .AND. p > 0
  562.                                                     p = p - 1
  563.                                                     @ 6,9 SAY "[ ] "
  564.                                                     DO tBoard WITH p,sstr
  565.                                                     r = 18
  566.                                                     c = 40
  567.                                                     ss = 1
  568.                                                     sa = 26
  569.                                                CASE r = 6 .AND. c = 40
  570.                                                     @ 6,39 SAY "[" + SubStr(sstr,x,1) + "] " + Sarray[sa]
  571.                                                     sa = sa - 1
  572.                                                     r = 18
  573.                                                     c = 10
  574.                                                     ss = 0
  575.                                             ENDCASE
  576.                                        
  577.                                        CASE LastKey() = 3        && Page Dn
  578.                                             DO CASE
  579.                                                CASE p = 4
  580.                                                     @ r,c-1 SAY "[" + SubStr(sstr,x,1) + "] " + Sarray[sa]
  581.                                                     sa = 26
  582.                                                     r = 18 
  583.                                                     c = 40 
  584.                                                CASE p < 4
  585.                                                     p = p + 1
  586.                                                     DO tBoard WITH p,sstr
  587.                                             ENDCASE
  588.                                        
  589.                                        CASE LastKey() = 18       && Page Up
  590.                                             DO CASE
  591.                                                CASE p = 0
  592.                                                     @ r,c-1 SAY "[" + SubStr(sstr,x,1) + "] " + Sarray[sa]
  593.                                                     sa = 1
  594.                                                     r = 6 
  595.                                                     c = 10 
  596.                                                CASE p > 0
  597.                                                     p = p - 1
  598.                                                     DO tBoard WITH p,sstr
  599.                                             ENDCASE
  600.                                          
  601.                                        CASE LastKey() =  24     && Down
  602.                                             DO CASE
  603.                                                CASE r < 18 
  604.                                                     @ r,c-1 SAY "[" + SubStr(sstr,x,1) + "] " + Sarray[sa]
  605.                                                     r = r + 1
  606.                                                     sa = sa + 1
  607.                                                CASE r = 18 .AND. c = 40 .AND. p = 4
  608.                                                     LOOP
  609.                                                CASE r = 18 .AND. c = 40 .AND. p < 4
  610.                                                     p = p + 1
  611.                                                     @ 18,39 SAY "[ ] "
  612.                                                     DO tBoard WITH p,sstr
  613.                                                     r = 6
  614.                                                     c = 10
  615.                                                     ss = 0
  616.                                                     sa = 1
  617.                                                CASE r = 18 .AND. c = 10
  618.                                                     @ 18,9 SAY "[" + SubStr(sstr,x,1) + "] " + Sarray[sa]
  619.                                                     sa = sa + 1
  620.                                                     r = 6
  621.                                                     c = 40
  622.                                                     ss = 1
  623.                                             ENDCASE
  624.                                         
  625.                                        CASE LastKey() = 32                && Space
  626.                                             IF SubStr(sstr,x,1) = "X"
  627.                                                sstr = Stuff(sstr,x,1,Chr(32))
  628.                                             ELSE 
  629.                                                sstr = Stuff(sstr,x,1,"X")
  630.                                             ENDIF
  631.                                             
  632.                                        CASE LastKey() = 13       && Enter
  633.                                             SET COLOR TO W+/N
  634.                                             j = At("X",sstr)
  635.                                             IF j = 0
  636.                                                DO BoxW WITH 9,26,13,54,"sa"
  637.                                                @ 10,28 SAY "You must mark one subject"
  638.                                                k = InKey(40)
  639.                                                x = 6 
  640.                                                SET COLOR TO N/W
  641.                                                @ 6,9 CLEAR TO 18,67
  642.                                                DO WHILE x <= 18
  643.                                                   @ x,9 SAY  "[ ]                           [ ]"
  644.                                                   x = x + 1
  645.                                                ENDDO
  646.                                                DO tBoard WITH p,sstr
  647.                                                @ 6,10 SAY SubStr(sstr,(p*26 + 1),1)
  648.                                             ELSE
  649.                                                IF "X" $ SubStr(sstr,j+1)
  650.                                                   DO BoxW WITH 9,24,13,56,"sa"
  651.                                                   @ 10,26 SAY "You may mark only one subject"
  652.                                                   k = InKey(40)
  653.                                                   x = 6 
  654.                                                   SET COLOR TO N/W
  655.                                                   @ 6,9 CLEAR TO 18,67
  656.                                                   DO WHILE x <= 18
  657.                                                      @ x,9 SAY  "[ ]                           [ ]"
  658.                                                      x = x + 1
  659.                                                   ENDDO
  660.                                                   DO tBoard WITH p,sstr
  661.                                                   @ 6,10 SAY SubStr(sstr,(p*26 + 1),1)
  662.                                                ELSE
  663.                                                   DO Msg WITH 3
  664.                                                   SET COLOR TO W/N
  665.                                                   REPLACE owner WITH uName()
  666.                                                   FOPEN sub SUBJECT.SUB 10 buf
  667.                                                   FSEEK sub z (j*26) 0
  668.                                                   FLREAD sub z line
  669.                                                   FCLOSE sub
  670.                                                   line = CRTrim(line)
  671.                                                   REPLACE sb WITH j
  672.                                                   REPLACE subject WITH line
  673.                                                   SET COLOR TO B/B
  674.                                                   @ 3,7 CLEAR TO 20,71
  675.                                                   DO BoxW WITH 5,15,11,65,"s"
  676.                                                   SET COLOR TO GR+/B
  677.                                                   @ 6,16 SAY "                 UPLOAD POSTER                   "
  678.                                                   SET COLOR TO N/W
  679.                                                   @ 8,17 SAY "If you wish to upload a Poster (advertisement)," 
  680.                                                   @ 9,17 SAY "enter the name of the text or ANSI file now."
  681.                                                   @ 10,17 SAY "[            ]"
  682.                                                   @ 10,18 GET poster
  683.                                                   READ
  684.                                                   IF Updated()
  685.                                                      f = Homepath() + "POST\" + RTrim(poster) + " /F/D"
  686.                                                      DOTBBS TYPE 30 OPTDATA f
  687.                                                   ENDIF
  688.                                                   DO Screen
  689.                                                   EXIT
  690.                                                ENDIF
  691.                                             ENDIF
  692.                                     ENDCASE
  693.                                     x = (r-5)+(ss*13)+(p*26)
  694.                                     SET COLOR TO W+/B
  695.                                     @ r,c-1 SAY "[" + SubStr(sstr,x,1) + "] " + Sarray[sa]
  696.                                  ENDDO
  697.                               ENDIF
  698.                               RELEASE Sarray
  699.                               DO pBox WITH 3
  700.                          
  701.                          CASE a = 2              && " Cancel Event ... "
  702.                               
  703.                          CASE a = 3              && " Upload Schedule  "
  704.                               
  705.                               
  706.                          CASE a = 4              && " Upload Poster    "
  707.                       
  708.                       ENDCASE   
  709.               
  710.                  CASE m = 4                      && Setup
  711.                       DO CASE 
  712.                          CASE u = 1              && " Subjects ...     "
  713.                          CASE u = 2              && " Locations ...    "
  714.                          CASE u = 3              && " Today & Tomorrow "
  715.                          CASE u = 4              && " This Week        "
  716.                          CASE u = 5              && " This Month       "
  717.                          CASE u = 6              && " Select Date ...  "
  718.                       ENDCASE   
  719.                       IF c $ dstr
  720.                          dstr = Stuff(dstr,a,1,"m")
  721.                          SET COLOR TO W/W
  722.                          @ a+1,18 SAY " "
  723.                       ELSE
  724.                          dstr = Stuff(dstr,a,1,c)
  725.                          SET COLOR TO W+/W
  726.                          @ a+1,18 SAY "√"
  727.                       ENDIF
  728.                  
  729.                  CASE m = 5                      && Help
  730.                  
  731.                  CASE m = 6                      && Quit
  732.                       QUIT
  733.               ENDCASE
  734.          OTHERWISE
  735.              LOOP
  736.       ENDCASE
  737.    ENDDO
  738. ENDDO
  739. QUIT
  740.  
  741.  
  742. **************************************************
  743. PROCEDURE pBox
  744. PARAMETERS s
  745.  
  746. DO CASE
  747.    CASE s = 1                                    && View
  748.         DO BoxW WITH 1,3,5,15,"s" 
  749.         @ 3,4 SAY " Slideshow "
  750.         @ 4,4 SAY " Reviews   "
  751.         SET COLOR TO W+/N
  752.         @ 2,4 SAY " Events    "
  753.  
  754.    CASE s = 2                                    && Find
  755.         DO BoxW WITH 1,15,7,26,"s"      
  756.         @ 3,16 SAY " Event    "
  757.         @ 4,16 SAY " Schedule "
  758.         @ 5,16 SAY " Review   "
  759.         @ 6,16 SAY " Archive  " 
  760.         SET COLOR TO W+/N
  761.         @ 2,16 SAY " Poster   "
  762.  
  763.    CASE s = 3                                    && Add/Cancel
  764.         DO BoxW WITH 1,23,6,42,"s"
  765.         @ 3,24 SAY " Cancel Event ... "
  766.         @ 4,24 SAY " Upload Schedule  "
  767.         @ 5,24 SAY " Upload Poster    "
  768.         SET COLOR TO W+/N
  769.         @ 2,24 SAY " Add Event ...    "
  770.    
  771.    CASE s = 4                                    && Setup
  772.         DO BoxW WITH 1,34,8,53,"s"      
  773.         @ 3,35 SAY " Locations ...    "
  774.         @ 4,35 SAY " Today & Tomorrow "
  775.         @ 5,35 SAY " This Week        "
  776.         @ 6,35 SAY " This Month       "
  777.         @ 7,35 SAY " Select Date ...  "
  778.         SET COLOR TO W+/N
  779.         @ 2,35 SAY " Subjects ...     "
  780.  
  781. ENDCASE
  782. RETURN
  783.  
  784.  
  785. **************************************************
  786. PROCEDURE BoxW
  787. PARAMETERS m,y,n,c,s
  788.  
  789. SET COLOR TO W/W
  790. @ m,y CLEAR TO n,c
  791. IF "s" $ s
  792.   SET COLOR TO N/N
  793.   @ n+1,y+1 CLEAR TO n+1,c
  794.   @ m+1,c+1 CLEAR TO n+1,c+1
  795. ENDIF
  796. SET COLOR TO N/W
  797. IF "+" $ s
  798.   SET COLOR TO W+/W
  799. ENDIF
  800. @ m,y SAY "┌"
  801. @ m,y+1 TO m,c
  802. @ m,c SAY "┐"
  803. @ m+1,y TO n,y
  804. @ n,y SAY "└"
  805. IF "a" $ s
  806.   SET COLOR TO W+/W
  807.   @ n-1,Ceiling((c-y-11)/2)+y SAY "< ANY KEY >"
  808. ENDIF                           
  809. SET COLOR TO N/W
  810. @ m+1,c TO n,c              
  811. @ n,y+1 TO n,c               
  812. @ n,c SAY "┘"                
  813. RETURN
  814.  
  815.  
  816. **************************************************
  817. PROCEDURE clrB
  818. PARAMETERS n
  819.  
  820. SET COLOR TO B/B
  821. DO CASE
  822.    CASE n = 1
  823.         @ 1,3 CLEAR TO 6,16
  824.    CASE n = 2
  825.         @ 1,15 CLEAR TO 8,27
  826.    CASE n = 3
  827.         @ 1,23 CLEAR TO 7,43
  828.    CASE n = 4
  829.         @ 1,34 CLEAR TO 9,54
  830. ENDCASE
  831. RETURN
  832.  
  833.  
  834.  
  835.  
  836. **************************************************
  837. PROCEDURE Msg
  838. PARAMETERS ms
  839.  
  840. DO CASE
  841.    CASE ms = 1
  842.         mg = "? = Help  <Ctrl>+<End> = Save   <Esc> = Quit without Saving       "
  843.    CASE ms = 2
  844.         mg = "? = Help  <Enter> = Quit, use selected Event Type                 "
  845.    CASE ms = 3
  846.         mg = "? = Help  <Enter> = Done │ Upload a full screen text/ANSI ad      "  
  847.    CASE ms = 4          
  848.         mg = "? = Help  <Enter> = Done    <Space Bar> = Select topic            "
  849.    CASE ms = 11
  850.         mg = "? = Help  │ Display all Events matching setup parameters          "
  851.    CASE ms = 12
  852.         mg = "? = Help  │ Display all Poster Ads matching setup parameters      "
  853.    CASE ms = 13
  854.         mg = "? = Help  │ Display all Reviews matching setup parameters         "
  855.    CASE ms = 21
  856.         mg = "? = Help  │ Find Ads matching Location/Date/Subject parameters    "
  857.    CASE ms = 22
  858.         mg = "? = Help  │ Find Events matching Location/Date/Subject parameters "
  859.    CASE ms = 23
  860.         mg = "? = Help  │ Find Schedules for Subjects in Setup                  "
  861.    CASE ms = 24
  862.         mg = "? = Help  │ Find Review matching Location/Date/Subject parameters "
  863.    CASE ms = 25
  864.         mg = "? = Help  │ Download Event Archive for specified date             "
  865.    CASE ms = 31
  866.         mg = "? = Help  │ Add Special, Weekly, or Monthly Event                 "
  867.    CASE ms = 32
  868.         mg = "? = Help  │ Stop display of a cancelled Event                     "
  869.    CASE ms = 33
  870.         mg = "? = Help  │ Send sports/events schedule to BBS                    "
  871.    CASE ms = 34
  872.         mg = "? = Help  │ Upload ad for your event                              "
  873.    CASE ms = 41
  874.         mg = "? = Help  │ Select Subjects for Search / View                     "
  875.    CASE ms = 42
  876.         mg = "? = Help  │ Select Locations for Search / View                    "
  877.    CASE ms = 43
  878.         mg = "? = Help  │ Search/View Today's and Tomorrow's Events             "
  879.    CASE ms = 44
  880.         mg = "? = Help  │ Search/View next 7 days' Events                       "
  881.    CASE ms = 45
  882.         mg = "? = Help  │ Search/View next 30 days' Events                      "
  883.    CASE ms = 46                                                                
  884.         mg = "? = Help  │ Select one date for Search/View                       "
  885.    CASE ms = 51
  886.         mg = "Display Full Help Text  │ ? for Context-sensitive Help            "
  887.    CASE ms = 61
  888.         mg = "Exit Event Master, return to BBS menu                             "
  889. ENDCASE
  890.  
  891. SET COLOR TO N/W
  892. @ 23,1 SAY mg
  893.  
  894. RETURN
  895.  
  896. **************************************************
  897. PROCEDURE Ckae
  898. PARAMETERS ae
  899.  
  900. SET COLOR TO W+/W
  901. DO CASE
  902.    CASE ae = 1
  903.         @ 11,33 SAY "■"
  904.         @ 12,33 SAY " "
  905.         @ 13,33 SAY " "
  906.    CASE ae = 2
  907.         @ 11,33 SAY " "
  908.         @ 12,33 SAY "■"
  909.         @ 13,33 SAY " "
  910.    CASE ae = 3
  911.         @ 11,33 SAY " "
  912.         @ 12,33 SAY " "
  913.         @ 13,33 SAY "■" 
  914. ENDCASE
  915. RETURN
  916.                      
  917.  
  918. **************************************************
  919. PROCEDURE tBoard
  920. PARAMETERS p,sstr
  921.  
  922. PRIVATE r
  923. PRIVATE c
  924.  
  925. SET COLOR TO GR+/B
  926. @ 4,63 SAY LTrim(Str(p+1))
  927. SET COLOR TO N/W
  928. FOPEN sub SUBJECT.SUB 10 buf
  929. FSEEK sub z (p*702) 0
  930.  
  931. x = 1
  932. r = 6
  933. c = 13
  934. DO WHILE x <= 26
  935.    FLREAD sub z line
  936.    line = CRTrim(line)
  937.    IF "@@@@" $ line
  938.       line = Replicate(Chr(32),25)
  939.       DO WHILE x <= 26
  940.          @ r,(c-3) SAY " "
  941.          @ r,c SAY line
  942.          x = x + 1
  943.          r = r + 1
  944.          IF x = 14
  945.             r = 6
  946.             c = 43
  947.          ENDIF
  948.       ENDDO
  949.       EXIT
  950.    ENDIF
  951.    Sarray[x] = line
  952.    @ r,c SAY line
  953.    IF c = 13
  954.       i = (r-5)+(p*26) 
  955.    ELSE  
  956.       i = (r-5)+13+(p*26)
  957.    ENDIF
  958.    @ r,(c-3) SAY SubStr(sstr,i,1)
  959.    r = r + 1
  960.    x = x + 1
  961.    IF x = 14
  962.       r = 6
  963.       c = 43
  964.    ENDIF
  965. ENDDO
  966. FCLOSE sub
  967.  
  968. RETURN
  969.  
  970. **************************************************                                      
  971. PROCEDURE NewDbf
  972.  
  973. APPEND BLANK
  974. REPLACE sth WITH 0, eth WITH 0, ca WITH 0, cu WITH 0, cc WITH 0
  975. REPLACE stm WITH "00", etm WITH "00"
  976. REPLACE sap WITH "p", eap WITH "p"
  977. REPLACE stat WITH "..", phn WITH ".............."
  978. REPLACE ev WITH Replicate(".",35), loc WITH Replicate(".",35) 
  979. REPLACE dsc1 WITH Replicate(Chr(32),43), dsc2 WITH Replicate(Chr(32),43) 
  980. REPLACE cty WITH "................"
  981. DO BoxW WITH 3,10,19,70,"s"
  982.                               
  983. @ 6,12  SAY "Event       [                                   ]"
  984. @ 9,12  SAY "Start Time:        .m.  End Time:          .m."
  985. @ 11,12 SAY "Location    [                                   ]"
  986. @ 12,12 SAY "City        [                ]       State   [  ]"
  987. @ 13,12 SAY "Description [                                           ]"
  988. @ 14,24 SAY             "[                                           ]"
  989. @ 16,12 SAY "COST:       Adult $        Under 12 $       Child $"
  990. @ 18,12 SAY "Information phone number"
  991. DO Msg WITH 1
  992.  
  993. RETURN
  994.  
  995. **************************************************
  996. PROCEDURE Screen
  997.  
  998. SET COLOR TO B/B
  999. @ 0,0 CLEAR
  1000. SET COLOR TO W/W
  1001. @ 0,0 CLEAR TO 0,79
  1002. @ 24,0 CLEAR TO 24,79
  1003. SET COLOR TO N/W
  1004. @ 0,4 SAY " View "
  1005. @ 0,17 SAY " Find "
  1006. @ 0,29 SAY " Add/Cancel "
  1007. @ 0,59 SAY " Help "
  1008. @ 0,71 SAY " Quit "
  1009. SET COLOR TO W/N
  1010. @ 0,46 SAY " Setup "
  1011. RETURN
  1012.  
  1013.  
  1014. **************************************************
  1015. PROCEDURE Popup                                    
  1016. PARAMETERS nx,bx,xx
  1017.  
  1018. PRIVATE n
  1019. n = Date()+(nx-1)
  1020.  
  1021. @ 3,25 SAY cDoW(n) + " " + cMonth(n) + " " + LTrim(Str(Day(n))) + ", " + LTrim(Str(Year(n)))
  1022. dnd = HomePath() + "DAY\" + SubStr(DtoC(n),1,2) + SubStr(DtoC(n),4,2) + SubStr(DtoC(n),7,2) + ".DAY"
  1023.  
  1024. FOPEN day &dnd 10 buf
  1025. IF bx = 0
  1026.    FSEEK day z 0 2
  1027.    IF z > 314
  1028.       FSEEK day z -314  
  1029.       bx = z
  1030.    ELSE
  1031.       FCLOSE day
  1032.       xx = 0
  1033.       RETURN
  1034.    ENDIF
  1035. ELSE
  1036.    FSEEK day z bx 0
  1037. ENDIF
  1038.  
  1039. FLREAD day z line
  1040. IF "@@@@" $ line
  1041.    FCLOSE day
  1042.    xx = 3
  1043.    RETURN
  1044. ENDIF
  1045.  
  1046. IF SubStr(sstr,Val(SubStr(line,1,3)),1) = "X"
  1047.    SET COLOR TO W+/W
  1048.    @ 7,14 SAY SubStr(line,34,25)
  1049.    @ 9,14 SAY SubStr(line,59,43)
  1050.    @ 10,14 SAY SubStr(line,102,43)
  1051.    FLREAD day z line
  1052.    FCLOSE
  1053.    @ 5,14 SAY SubStr(line,121,10) + " to " + SubStr(line,131,10)
  1054.    @ 8,14 SAY SubStr(line,1,35)
  1055.    @ 12,14 SAY SubStr(line,36,35) + "  " + RTrim(SubStr(line,71,16)) + "," + SubStr(line,87,2)
  1056.    @ 14,14 SAY SubStr(line,102,7)
  1057.    @ 15,16 SAY SubStr(line,109,6) 
  1058.    @ 15,43 SAY SubStr(line,115,6)
  1059.    @ 17,18 SAY SubStr(line,89,13)
  1060. ELSE
  1061.    FCLOSE
  1062.    xx = 2
  1063.    bx = bx + 288
  1064.    RETURN
  1065. ENDIF
  1066. IF "." $ SubStr(line,141,12) 
  1067.    SET COLOR TO N/W
  1068.    @ 21,6 CLEAR TO 21,40
  1069.    @ 21,8 SAY "More info available. View Now?"
  1070. ENDIF
  1071. xx = 1
  1072. bx = bx + 288
  1073.  
  1074. RETURN
  1075.